Questions
9 of 17
1Design a semantic search system that must support 500 million documents with sub-100ms p99 latency. What are the key architectural decisions?
2How would you plan capacity (RAM, disk, CPU, node count) for a collection of a given size, vector dimensionality, and expected QPS?
3What architectural changes would you make to support near-real-time search over data that changes thousands of times per second (e.g., a live feed)?
4How would you design a system that needs to support both 'search the last 24 hours' and 'search all history' with very different latency expectations?
5What role does caching play in a Qdrant-backed search system, and at what layers would you introduce it?
6How would you decide the initial number of shards for a new collection when the eventual data size is uncertain?
7What is the relationship between shard count and query fan-out cost, and why doesn't 'more shards' always mean 'faster'?
8How many replicas would you configure for a shard serving a mission-critical, read-heavy workload, and what does each additional replica cost you?
9What operational steps are involved in adding a new node to an existing Qdrant cluster and rebalancing shards onto it?
10How does Qdrant's architecture and target use case differ from Pinecone's as a fully managed, closed-source vector database?
11When would you choose pgvector inside an existing Postgres database over a dedicated vector database like Qdrant?
12What distinguishes Qdrant from Weaviate and Milvus at a conceptual level, and what would make you choose one over the others for a given project?
13Under what circumstances would a team be justified in NOT using a vector database at all, and instead using brute-force search or a traditional search engine?
14What is your target Recovery Point Objective (RPO) and Recovery Time Objective (RTO) for a Qdrant deployment, and how do snapshot frequency and replication factor influence each?
15How would you design a disaster-recovery strategy that survives the loss of an entire cloud region?
16What is the operational difference between a rolling upgrade of a replicated cluster and an in-place upgrade of a single-node deployment?
17How would you validate that a newly restored cluster from snapshots is actually healthy and serving correct results before routing production traffic to it?
09 / 17

What operational steps are involved in adding a new node to an existing Qdrant cluster and rebalancing shards onto it?

Join, place replicas, transfer data, verify, repeat with care

Adding a node to an existing Qdrant cluster involves a sequence of steps: provision the node with the same configuration and version as the existing cluster, join it to the cluster's Raft group, wait for the cluster to recognize it, then trigger the placement or rebalancing logic to move some shard replicas onto the new node, and verify the transfer. The exact mechanism depends on the version: in some versions, the cluster automatically distributes shards when a new node joins; in others, the operator must trigger a rebalance. The transfer itself is a data migration: the new node receives a snapshot or a stream of the shard's data from a peer, applies it, and then joins the replication stream. The shard's primary continues to serve traffic during the transfer, so there is no downtime for that shard, but the transfer consumes network bandwidth and disk I/O on both the source and the destination node, which can affect query latency. The process must be done one shard at a time, or in small batches, to avoid saturating the network and causing latency spikes.

The mechanism that makes this safe is that shard replicas are independent: moving one replica of a shard does not affect the shard's availability, because the primary and the other replicas continue to serve. The cluster's metadata (maintained through Raft) tracks the placement, and the rebalance updates the placement atomically. The new node's replica is only promoted to primary if the primary fails, so the rebalance does not change the write path. The transfer is bounded by the size of the shard and the network bandwidth between the source and the destination. For a large shard, this can take minutes to hours. During the transfer, the source node's query latency may increase because of the I/O and network load, so the transfer should be scheduled during a low-traffic period if possible. After the transfer, the new node's replica is fully in sync and can serve reads, which increases the cluster's capacity. The rebalance is complete when the cluster's placement is balanced, which may require moving multiple replicas. The whole process should be monitored for progress, latency impact, and errors.

  1. 1

    Provision the node: same version, same configuration, same hardware profile.

  2. 2

    Join the cluster: add the node to the Raft group and wait for it to be recognized.

  3. 3

    Trigger rebalance: let the cluster place shards, or manually assign replicas.

  4. 4

    Transfer data: the new node receives a snapshot or streams from a peer.

  5. 5

    No downtime: the primary and other replicas continue to serve during the transfer.

  6. 6

    Load impact: the transfer consumes network and disk I/O on the source and destination nodes.

  7. 7

    Verify: check that the new replica is in sync and the cluster's placement is balanced.

  8. 8

    Batch the transfers: move one or a few replicas at a time to avoid saturating resources.

The trade-off is between adding capacity quickly and avoiding latency impact. A fast rebalance moves many replicas at once, which saturates the network and causes latency spikes. A slow rebalance moves one replica at a time, which is safe but takes longer. The right pace depends on the latency SLO and the size of the shards. The common mistakes are: (1) joining a node with a different version or configuration, which can cause compatibility issues; (2) triggering a full rebalance during peak traffic, which causes latency spikes; (3) not monitoring the transfer progress, so a stuck transfer is not noticed; (4) moving too many replicas at once, which saturates the network; (5) not verifying the placement after the rebalance, so some shards are still unbalanced. Version note: the cluster join and rebalance APIs have changed across Qdrant releases. In some versions, the rebalance is automatic; in others, it is manual. The exact API for adding a node and triggering a rebalance may differ. Verify the process on your version before performing it in production.

javascript

Version-dependent: the cluster join and rebalance APIs and the automatic placement behavior have changed across Qdrant releases. In older versions, the rebalance was more manual; in newer versions, it is more automated. Qdrant Cloud manages the process. If you are self-hosting, verify the exact process for your version and test it in a staging cluster before doing it in production.

Difficulty: 7/10
Topics: Scaling, Cluster Operations, Rebalancing

Scenario Questions

0-2 years experience
  1. 1

    You add a node to a cluster and no shards move to it. Explain why and how to trigger the rebalance.

  2. 2

    A teammate adds a node with a different version. Explain the risk and what to do instead.

2-5 years experience
  1. 1

    You add a node and the rebalance causes a latency spike. Diagnose the cause and describe how to avoid it next time.

  2. 2

    You need to double the cluster's capacity. Describe the process for adding nodes and rebalancing, with minimal impact.

5-8 years experience
  1. 1

    Design the process for expanding a cluster from 3 to 6 nodes with no downtime and no latency regression. Specify the steps, the pacing, and the monitoring.

  2. 2

    You need to decommission a node and move its shards elsewhere. Describe the process and the safety checks.

8+ years experience
  1. 1

    Derive the time to rebalance a cluster as a function of shard sizes, network bandwidth, and the pacing constraint. How would you plan a large expansion?

  2. 2

    You are designing a system that must scale elastically with traffic. Describe the autoscaling and rebalancing architecture, and the trade-offs.

Follow-up Questions

  • How would you pace the rebalance to avoid affecting query latency, and what would you monitor to detect an impact?
  • If a shard's transfer is stuck or slow, how would you diagnose the cause and what would you do?